home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 001450_daemon _Fri Jun 25 22:14:17 1993.msg < prev    next >
Internet Message Format  |  1994-01-24  |  6KB

  1. Received: by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  2.     id AA19369; Fri, 25 Jun 93 22:14:19 MET DST
  3. Return-Path: <mvanheyn@cs.indiana.edu>
  4. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  5.     id AA19364; Fri, 25 Jun 93 22:14:17 MET DST
  6. Received: from moose.cs.indiana.edu by dxmint.cern.ch (5.65/DEC-Ultrix/4.3)
  7.     id AA21664; Fri, 25 Jun 1993 22:37:30 +0200
  8. Received: from localhost by moose.cs.indiana.edu
  9.     (5.65c/9.4jsm) id AA07887; Fri, 25 Jun 1993 15:37:28 -0500
  10. From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>
  11. To: www-talk@nxoc01.cern.ch
  12. Subject: Encapsulating HTTP in MIME
  13. Date: Fri, 25 Jun 1993 15:37:27 -0500
  14. Message-Id: <7883.741040647@moose.cs.indiana.edu>
  15. Sender: mvanheyn@cs.indiana.edu
  16.  
  17. HTTP, particularly HTTP/1.0, is a transaction oriented protocol.  I
  18. believe there are advantages to generating a mechanism whereby the
  19. individual portions of the transactions (the REQUEST and the RESPONSE)
  20. can be treated as MIME content-types, allowing separation,
  21. encapsulation, forwarding, and the usual MIME stuff.
  22.  
  23. I (tentatively and roughly) suggest the creation of two additional
  24. MIME types:
  25.  
  26.   message/http-request
  27.  
  28. and
  29.  
  30.   message/http-response
  31.  
  32. with their contents being identical to the request and response
  33. messages of an HTTP transsaction, respectively.  Since the machine and
  34. port of an HTTP transaction aren't represented within the request or
  35. response explicitly, the request will need this as a parameter called
  36. "host" or some such when it can't be assumed to be the machine reading
  37. the request.
  38.  
  39. WHY DO THIS?
  40.  
  41. One advantage to this kind of method is that it should make it easier
  42. for non-interactive users to utilize the full power of HTTP/1.0 via
  43. mail messages sent to a mailbot that can take the http-request, send
  44. it over the network as appropriate, and send back the result
  45. encapsulated as an http-response.  This allows for precise tagging and
  46. should help make a more automated environment for WWW users stuck on
  47. UUCP or other dialup networks sending HTTP transactions via email (or
  48. other means.)  The current mailbot, while servicable, is hardly
  49. elegant; this could, in principle, let UUCP people (or people with
  50. paranoid firewalls, or whatever) use XMosaic, just a bit slower.
  51.  
  52. The ability to encapsulate requests and responses inside other MIME
  53. objects will also allow for Privacy Enhanced Mail (PEM) security
  54. services, notably authentication, to be applied to HTTP transactions.
  55. The problem of authorization to data may be handled by simply taking
  56. the entire REQUEST segment, tagging it as an http-request, and signing
  57. it with standard PEM techniques.  MIME-PEM interoperation is still an
  58. internet draft, but the big issues are pretty much taken care of; only
  59. minor syntactic matters remain.
  60.  
  61. The only real area of uncertainty I have is what HTTP request method
  62. is appropriate for sending an encapsulated request to a server
  63. directly.  It could use the PUT or POST methods, or a new method.
  64. I'll use PUT for the moment.  Thus, a simple request to a mailbot
  65. might look kind of like this:
  66.  
  67.   From: jrandom@nowhere.org
  68.   To: mailbot@www.some.place.edu
  69.   MIME-Version: 1.0
  70.   Content-Type: message/http-request; host="info.cern.ch:80"
  71.  
  72.   GET /hypertext/WWW/TheProject.html HTRQ/1.0
  73.   From: jrandom@nowhere.org
  74.   Accept: text/plain; text/html; image/gif; ...
  75.   User-Agent: ...
  76.   [ ... ]
  77.  
  78. and the mailbot would send back a message something like this:
  79.  
  80.   From: mailbot@www.some.place.edu
  81.   To: jrandom@nowhere.org
  82.   MIME-Version: 1.0
  83.   Content-Type: message/http-response
  84.  
  85.   103 200 OK
  86.   Last-Modified: <date>
  87.   MIME-Version: 1.0
  88.   Content-Type: text/html
  89.  
  90.   [the HTML document]
  91.  
  92. An authenticated transaction searching for information in an online
  93. multimedia encyclopedia might look vaguely like this:
  94.  
  95.   PUT request HTRQ/1.0
  96.   MIME-Version: 1.0
  97.   Content-Type: multipart/pem; boundary="boundary"; privacy=mic-only
  98.   Length: <whatever>
  99.  
  100.   --boundary
  101.   Content-Type: message/pem-clear
  102.  
  103.   Content-Type: message/http-request
  104.  
  105.   GET /multimedia-encyclopedia/index?space+mission+moon HTRQ/1.0
  106.   From: mvanheyn@cs.indiana.edu
  107.   Accept: text/plain; text/html; image/gif; ...
  108.  
  109.   --boundary
  110.   Content-Type: application/pem
  111.  
  112.   Proc-Type: 4,MIC-ONLY
  113.   Originator-ID-Asymmetric: ...
  114.   MIC-Info: RSA-MD5,RSA, [various signature information...]
  115.   ...
  116.  
  117.   --boundary--
  118.  
  119. Thus, the *entire* HTTP request is encapsulated inside the
  120. authenticated (and, if desired, encrypted) portion of the message;
  121. this is important, since the whole request should be authenticated
  122. (the first line is probably the most important thing to verify) and
  123. protected by the PEM structure.
  124.  
  125. The preceeding example is based on the current internet draft
  126. draft-ietf-pem-mime-02.txt; if you aren't familiar with it, the above
  127. may look a little odd.  Naturally, "ordinary" requests and replies
  128. would normally be used in situations not requiring services of PEM.
  129.  
  130. I believe this kind of content tagging has some general advantages for
  131. increasing the ability to do HTTP transactions indirectly, and has the
  132. distinct advantage of continuing HTTP's relationship with MIME and
  133. closeness with "normal" mail.  Trying to force a PEM signature into an
  134. HTTP Authorization: header or some such might be possible, but seems
  135. like a bad idea to me.
  136.  
  137. I also believe that using PEM as a model for security services
  138. continues the close relationship between HTTP and mail and is strongly
  139. preferable to using Kerberos; I won't rant about this one right now
  140. though.
  141.  
  142. Obviously, details and syntax and stuff would need to be fleshed out;
  143. for example, it might be desirable to use unique identifiers
  144. (Message-ID?) to allow clients receiving responses in batch mode by
  145. UUCP to sort out which responses go with with requests.  In general, I
  146. think this kind of development would be of use. 
  147.  
  148. Reactions?
  149. - Marc
  150. --
  151. Marc VanHeyningen   mvanheyn@cs.indiana.edu
  152. MIME, RIPEM and HTML spoken here.